home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2007 September / PCWSEP07.iso / Software / Linux / Linux Mint 3.0 Light / LinuxMint-3.0-Light.iso / casper / filesystem.squashfs / etc / init.d / pcmciautils < prev    next >
Encoding:
Text File  |  2007-03-07  |  2.3 KB  |  134 lines

  1. #! /bin/sh
  2. #
  3. ### BEGIN INIT INFO
  4. # Provides:          pcmcia
  5. # Default-Start:     1 2 3 4 5
  6. # Default-Stop:      0 6
  7. # Short-Description: PCMCIA support
  8. # Description:       This service provides PCMCIA hardware support for
  9. #                    systems running Linux >= 2.6.13-rc1.
  10. ### END INIT INFO
  11.  
  12. set -e
  13.  
  14. [ -f /sbin/pccardctl ] || exit 0
  15.  
  16. # If /lib/lsb/init-functions doesn't exist
  17. # define them here, otherwise installer breaks
  18. if [ -f /lib/lsb/init-functions ]; then
  19.     . /lib/lsb/init-functions
  20. else
  21.     log_daemon_msg()
  22.     {
  23.     echo "$1: $2"
  24.     }
  25.     log_end_msg()
  26.     {
  27.     if [ "$1" = 0 ]; then
  28.         echo "done"
  29.     else
  30.         echo "failed!"
  31.     fi
  32.     return $1
  33.     }
  34.     log_success_msg()
  35.     {
  36.     echo "$@"
  37.     }
  38.     log_failure_msg()
  39.     {
  40.     echo "$@"
  41.     }
  42. fi
  43.  
  44. [ -f /etc/default/pcmciautils ] && . /etc/default/pcmciautils
  45.  
  46. case $PCMCIA in
  47.     no|false)
  48.     exit 0
  49.     ;;
  50. esac
  51.  
  52. [ -f /etc/default/rcS ] && . /etc/default/rcS
  53.  
  54. # Are we running from init?
  55. run_by_init()
  56. {
  57.     ([ "$previous" ] && [ "$runlevel" ]) || [ "$runlevel" = S ]
  58. }
  59.  
  60. if ls /sys/class/pcmcia_socket/* >/dev/null 2>&1; then
  61.     if ! run_by_init; then
  62.     log_success_msg "PCMCIA bridge driver already present in kernel"
  63.     fi
  64.     exit 0
  65. fi
  66.  
  67. KERNEL_VERSION="$(uname -r | sed 's/-.*//')"
  68.  
  69. supported_kernel()
  70. {
  71.     case $KERNEL_VERSION in
  72.     2.[012345].*|2.6.[0-9]|2.6.[0-9][!0-9]*) return 1 ;;
  73.     2.6.1[012]|2.6.1[012][!0-9]*) return 1 ;;
  74.     esac
  75.     return 0
  76. }
  77.  
  78. if ! supported_kernel; then
  79.     if ! run_by_init; then
  80.     log_failure_msg "pcmciautils requires Linux >= 2.6.13-rc1; use pcmcia-cs instead"
  81.     fi
  82.     exit 1
  83. fi
  84.  
  85. if [ -z "$PCIC" ]; then
  86.     if ! run_by_init; then
  87.     log_failure_msg "No PCMCIA bridge module specified"
  88.     fi
  89.     exit 1
  90. fi
  91.  
  92. if ! [ -e /dev/.udev ]; then
  93.     if ! run_by_init; then
  94.     log_failure_msg "pcmciautils requires udev to be enabled"
  95.     fi
  96.     exit 1
  97. fi
  98.  
  99. if [ "$VERBOSE" = "no" ]; then
  100.     MODPROBE_OPTIONS="$MODPROBE_OPTIONS -Q"
  101.     export MODPROBE_OPTIONS
  102. fi
  103.  
  104. case "$1" in
  105.     start)
  106.     log_daemon_msg "Loading PCMCIA bridge driver module" "$PCIC"
  107.  
  108.     if [ "$CORE_OPTS" ]; then
  109.         modprobe -Qb pcmcia_core $CORE_OPTS
  110.     fi
  111.     
  112.     modprobe -Qb $PCIC $PCIC_OPTS
  113.     
  114.     log_end_msg $?
  115.     ;;
  116.  
  117.     stop)
  118.     ;;
  119.     
  120.     restart)
  121.     $0 stop
  122.     $0 start
  123.     exit $?
  124.     ;;
  125.  
  126.     reload|force-reload)
  127.     ;;
  128.  
  129.     *)
  130.     log_success_msg "Usage: $0 {start|stop|restart|reload|force-reload}"
  131.     exit 2
  132.     ;;
  133. esac
  134.